Information processing system and computer control method

ABSTRACT

A first program obtains calculation resource information for determining computer calculation resource to be used by one of a plurality of second programs, one to be begun being executed by the computer, and releases, based on the calculation resource information obtained, a part of the computer calculation resource currently used by the first program. A second program is executed, using the released computer calculation resource. An information processing system comprises a parallel execution condition information obtaining unit for obtaining parallel execution condition information indicating condition of one of the plurality of second programs, one to be executed in parallel to the first program, the condition being set according to the first program and, and an execution restricting unit for restricting execution of a part or all of the plurality of second programs, based on the parallel execution condition information.

TECHNICAL FIELD

The present invention relates to an information processing system and acomputer control method, and more particularly to a computer environmentin which a plurality of programs are executed in parallel.

BACKGROUND ART

There is known a technique for dividing calculation resources, such as amemory, a CPU time, and so forth, of a computer so that a plurality ofprograms are executed using the respective calculation resources.According to this technique, a general purpose program, such as a systemsetting program and so forth, is installed beforehand in a computer sothat the program can be executed at any time, when execution thereof isrequired while an application program installed after the installationof the general purpose program is being executed. This arrangementimproves user convenience, and as duplicated development of a generalpurpose program can be avoided, also improves development efficiency.

DISCLOSURE OF THE INVENTION Problems to be Solved by the Invention

However, if the result of execution of a general purpose program isdisplayed in an unexpected position on the computer display screen whilean application program is being executed, it may occur that the formerresult would cover, and thus hide, a part or all of the latter result,and as a result, the user may not be able to see the displayed result ofexecution of the application program.

The present invention has been conceived in view of the above, and aimsto provide an information processing system and a computer controlmethod for displaying, when the result of execution of a program is tobe displayed while the result of execution of another program is beingdisplayed, the former result at an appropriate position.

Means to Solve the Problem

In order to achieve the above described object, according to one aspectof the present invention, there is provided an information processingsystem, comprising program executing means for executing a first programand a second program in parallel; and display means for displaying aresult of execution by the program executing means on a display screen,wherein the first program causes a computer to function as notifyingmeans for notifying the second program of display position dataindicating a position on the display screen, and the second programcauses the computer to function as obtaining means for obtaining thedisplay position data and display control means for displaying theresult of execution in the position indicated by the display positiondata on the display screen.

In one embodiment of the present invention, the notifying means maychange the display position data to be notified to the second program,according to content of a result of execution of the first program, thecontent being currently displayed on the display screen.

According to another aspect of the present invention, there is provideda control method for a computer including program executing means forexecuting a first program and a second program in parallel, and displaymeans for displaying a result of execution by the program executingmeans on a display screen, the control method, comprising a step ofproducing display position data indicating a position on the displayscreen, in accordance with the first program; a step of obtaining thedisplay position data, in accordance with the second program; and a stepof displaying a result of execution of the second program in theposition indicated by the display position data on the display screen.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 is a diagram showing a hardware structure of an entertainmentsystem according to an embodiment of the present invention;

FIG. 2 is a diagram showing a structure of an MPU;

FIG. 3 is a diagram showing a program installed in the entertainmentsystem;

FIG. 4 is a functional block diagram of a resident system program;

FIG. 5 is a functional block diagram of a game program;

FIG. 6 is a diagram showing one example of a table showing calculationresource required by each non-resident system program;

FIG. 7 is a diagram showing one example of screen images shown on amonitor before and after activation of a non-resident system program;and

FIG. 8 is a sequential diagram showing an operation of the entertainmentsystem according to the embodiment of the present invention.

BEST MODE FOR CARRYING OUT THE INVENTION

In the following, one embodiment of the present invention will bedescribed in detail with reference to the accompanying drawings.

FIG. 1 is a diagram showing a hardware structure of an entertainmentsystem (an information processing system) according to this embodiment.As shown in the diagram, the entertainment system 10 is a computersystem comprising an MPU (Micro Processing Unit) 11, a main memory 20,an image processing unit 24, a monitor 26, an input output processingunit 28, a sound processing unit 30, a speaker 32, an optical discreading unit 34, an optical disc 36, a hard disk 38, interfaces (I/F)40, 44, a controller 42, a camera unit 46, and a network interface 48.

FIG. 2 is a diagram showing a structure of the MPU 11 (program executingmeans). As shown in the diagram, the MPU 11 comprises a main processor12, sub-processors 14 a, 14 b, 14 c, 14 d, 14 e, 14 f, 14 g, 14 h, a bus16, a memory controller 18, and an interface (I/F) 22.

The main processor 12 carries out various information processes andcontrols the sub-processors 14 a to 14 h, based on an operating systemstored in a ROM (Read Only Memory) (not shown), a program and data readfrom the optical disc 36, such as, e.g., a DVD (Digital VersatileDisk)-ROM and so forth, and those supplied via a communication networkand so forth.

The sub-processors 14 a to 14 h carry out various information processesaccording to an instruction from the main processor 12 and control therespective units of the entertainment system 10, based on a program anddata read from the optical disc 36, such as, e.g., a DVD-ROM and soforth, and those supplied via a communication network and so forth.

The bus 16 is used for exchanging an address and data among therespective units of the entertainment system 10. The main processor 12,sub-processors 14 a to 14 h, memory controller 18, and interface 22 aremutually connected via the bus 16 for data exchange.

The memory controller 18 accesses the main memory 20 according to aninstruction from the main processor 12 and sub-processors 14 a to 14 h.A program and data read from the optical disc 36 and/or hard disk 38 andthose supplied via a communication network are written into the mainmemory 20 as required. The main memory 20 is used as a working memory ofthe main processor 12 and sub-processors 14 a to 14 h.

The image processing unit 24 and input output processing unit 28 areconnected to the interface 22, via which data exchange between the mainprocessor 12 and sub-processors 14 a to 14 h and the image processingunit 24 or input output processing unit 28 is carried out.

The image processing unit 24 comprises a GPU (Graphical Processing Unit)and a frame butter. The GPU renders various screen images into the framebuffer, based on the image data supplied from the main processor 12 andsub-processors 14 a to 14 h. A screen image formed in the frame buffer,that is, a screen image showing the result of execution by the MPU 11,is converted into a video signal at a predetermined time and output tothe monitor 26. It should be noted that the monitor 26 may be, e.g., ahome-use television set receiver.

The input output processing unit 28 is connected to the sound processingunit 30, optical disc reading unit 34, hard disk 38, and interfaces 40,44. The input output processing unit 28 controls data exchange betweenthe main processor 12 and sub-processors 14 a to 14 h and the soundprocessing unit 30, optical disc reading unit 34, hard disk 38,interfaces 40, 44, and network interface 48.

The sound processing unit 30 comprises an SPU (Sound Processing Unit)and a sound buffer. The sound buffer stores various kinds of sound data,such as game music, game sound effects, a message, and so forth, readfrom the optical disc 36 and/or hard disk 38. The SPU reproduces thevarious kinds of sound data, and outputs via the speaker 32. It shouldbe noted that the speaker 32 may be, e.g., a built-in speaker of ahome-use television set receiver.

The optical disc reading unit 34 reads a program and data recorded inthe optical disc 36 according to an instruction from the main processor12 and/or sub-processors 14 a to 14 h. It should be noted that theentertainment system 10 may be formed capable of reading a program anddata stored in a computer readable information storage medium other thanthe optical disc 36.

The optical disc 36 is a general optical disc (e.g., a computer readableinformation storage medium), such as, e.g., a DVD-ROM or the like. Thehard disk 38 is a general hard disk device. Various programs and dataare recorded in the optical disc 36 and/or hard disk 38 in a computerreadable manner.

The interfaces (I/F) 40, 44 are used to connect various peripheraldevices, such as the controller 42, camera unit 46, and so forth. Suchan interface may be, e.g., a USB (Universal Serial Bus) interface.

The controller 42 serves as a general purpose operation input means andis used by a user to input various operations (e.g., a game operation).The input output processing unit 28 scans the states of the respectiveunits of the controller 42 every predetermined period of time (e.g.,1/60^(th) of a second), and supplies an operational signal describingthe scanning result to the main processor 12 and sub-processors 14 a to14 h. The main processor 12 and sub-processors 14 a to 14 h determinethe content of an operation carried out by the user, based on theoperational signal. It should be noted that the entertainment system 10is formed adapted to connection to a plurality of controllers 42 so thatthe main processor 12 and sub-processors 14 a to 14 h can carry outvarious processes, based on the operation signals input from therespective controllers 42.

The camera unit 46 comprises, e.g., a publicly known digital camera, andinputs a captured black/white, grey-scaled, or colored image everypredetermined period of time (e.g., 1/60^(th) of a second). The cameraunit 46 in this embodiment inputs a captured image as image data in theJPEG (Joint Photographic Experts Group) format. The camera unit 46 ismounted on the monitor 26, having the lens thereof, e.g., directed tothe player, and connected via a cable to the interface 44. The networkinterface 48 is connected to the input output processing unit 28 and acommunication network such as the Internet or the like to relay datacommunication made by the entertainment system 10 via the network toanother entertainment system 10 or the like.

As shown in FIG. 3, the entertainment system 10 has an operating system50, a system program 52, and an application program 54 installedtherein. The operating system 50 is stored in a ROM (not shown) or thehard disk 38 and includes a boot program and a program for various basicfunctions of the entertainment system 10.

The system program 52 is stored in the ROM (not shown) or hard disk 38,and includes a program for various general functions often used by auser. Specifically, as shown in FIG. 3, the system program 52 includes aresident system program 52 a and a plurality of non-resident systemprograms 52 b, in which the former resides in the main memory 20 whenthe entertainment system 10 is activated, and the latter is activated inresponse to a user's instruction or an instruction from another program.The resident system program 52 a has, e.g., a function for displaying amenu to be referred to by a user instructing to activate a non-residentsystem program 52 b, a function for displaying various messages, and afunction for making various settings on the entertainment system 10. Thenon-resident system program 52 b is a program for sorting out thecontent stored in the hard disk 38 and/or a portable storage medium (notshown), a program for a software keyboard, a program for a Web browser,a program for chatting with another user via a communication network,and so forth.

The application program 54 is stored in the optical disc 36 and/or harddisk 38, and loaded into the main memory 20. The application program 54is a program for a specific purpose, specifically, a game program 54 ahere.

In the entertainment system 10, the above described programs areexecuted in parallel, using the calculation resources, such as the mainprocessor 12, sub-processor 14 a to 14 h, main memory 20, and so forth.That is, the resident system program 52 a, one or more non-residentsystem programs 52 b, and the game program 54 a are concurrentlyexecuted on the operating system 50.

As shown in FIG. 4, the resident system program 52 a causes theentertainment system 10 to function as a co-existent program listobtaining unit 60, a menu selection unit 62, an activation preparationunit 64, and an activation unit 66.

The co-existent program list obtaining unit 60 obtains a co-existentprogram list (parallel execution condition information) set by the gameprogram 54 a. The co-existent program list shows a condition to besatisfied by a non-resident system program 52 b permitted to be executedin parallel with the game program 54 a among a plurality of non-residentsystem programs 52 b, including information stating whether or not eachnon-resident system program 52 b is permitted to be executed in parallelwith the game program 54 a.

The menu selection unit 62 displays a menu screen image on the monitor26, and according to an operation signal input from the controller 42,selects one of the icon images related to the respective non-residentsystem programs 52 b, shown on the menu screen. In displaying the menuscreen image, the menu selection unit 62 obtains the latest co-existingprogram list having been obtained by the co-existent program listobtaining unit 60, and displays on the monitor 26 only an icon imagerelated to a non-resident system program 52 b permitted to be executedin parallel with the game program 54 a which is currently executed, butnot an icon image related to an otherwise non-resident system program 52b. With this arrangement, instruction to execute a non-resident systemprogram 52 b not permitted, according to the co-existent program list,to be executed in parallel with the game program 54 a is restricted.

The activation preparation unit 64 prepares for activation of thenon-resident system program 52 b selected by the menu selection unit 62.Specifically, an activation request which includes calculation resourceinformation about calculation resources (e.g., a memory usage amount ofthe main memory 20 and so forth and processor usage amounts of the mainprocessor 12 and sub-processors 14 a to 14 h and so forth) necessary inexecution of the selected non-resident system program 52 b is notifiedto the game program 54 a. The calculation resource information isidentification of, e.g., a non-resident system program 52 b, and in thiscase, calculation resources necessary in execution of the non-residentsystem program 52 b identified by the identification are determinedbased on the identification on the game program 54 a side.Alternatively, the calculation resource information may be informationidentifying the calculation resources themselves necessary in executionof the selected non-resident system program 52 b.

The game program 54 a releases the calculation resources necessary inexecution of the non-resident system program 52 b selected by the menuselection unit 62, according to the calculation resource informationnotified by the activation preparation unit 64, and after thecalculation resources are released, the activation unit 66 activates theselected non-resident system program 52 b. In the above, the gameprogram 54 a provides the resident system program 52 a with displayposition data indicating a position at which to display the image of awindow or the like where the result of execution of the non-residentsystem program 52 b is displayed. Specifically, the display positiondata is provided when the selected non-resident system program 52 b isactivated.

The non-resident system program 54 b is a program to be executed usingthe calculation resources released by the game program 54 a. With theabove-described display position data obtained, an image describing theresult of execution is displayed in an according position.

As shown in FIG. 5, the game program 54 a causes the entertainmentsystem 10 to function as an activation request receiving unit 70, areleasing resource determination unit 72, a resource releasing unit 74,an activation permitting unit 76, a co-existent program list settingunit 78, and a game control unit 80.

The activation request receiving unit 70 receives the activation requestfrom the resident system program 52 b, and provides the calculationresource information (identification of a non-resident system program 52b) contained therein to the releasing resource determination unit 72.The releasing resource determination unit 72 stores identification (aprogram ID) of a non-resident system program 52 b and calculationresources necessary in execution of the non-resident system program 52 bso as to be associated with each other, as shown in, e.g., FIG. 6, andreads therefrom the calculation resources corresponding to thecalculation resource information provided by the activation requestreceiving unit 70. Further, the releasing resource determination unit 72obtains the calculation resources being used by the game program 54 afrom the game control unit 80, and determines the calculation resourcesto be released by the program 54 a, based on both of the calculationresource corresponding to the calculation resource information and thecalculation resources being used by the game program 54 a. The resourcereleasing unit 74 instructs the operating system 50 to release thedetermined amount of calculation resources.

After releasing of the calculation resources by the resource releasingunit 74, the activation permitting unit 76 notifies the resident systemprogram 52 a that activation of the selected non-resident system program52 b is to be permitted. The activation permitting unit 76, which has adisplay position notifying unit 76 a, obtains display position datadescribing a position on the display screen, at which to display theresult of execution of the non-resident system program 52 b, from thegame control unit 80, and includes the display position data in thenotice. With the above, it is possible to determine, on the game program54 a side, a position on the display screen at which to display theresult of execution of the non-resident system program 52 b, dependingon the content currently displayed on the monitor 26 according to thegame program 54 a, and to instruct the position, so that a state inwhich an important part of the result of execution of the game program54 a is covered, and thus hidden, by the displayed result of executionof the non-resident system program 52 b is not caused. FIG. 7( a) showsone example of content displayed on the monitor 26 before execution ofthe non-resident system program 52 b; FIG. 7( b) shows one example ofcontent displayed on the monitor 26 after execution of the non-residentsystem program 52 b. The display position notifying unit 76 a notifiesthe resident system program 52 a of data specifying an area at which todisplay the image 82 showing the result of execution of the non-residentsystem program 52 b, the area determined depending on the content of thegame screen image (FIG. 7( a)) produced by the game control unit 80,that is, data specifying the positions 84 a, 84 b, or corners, of thearea.

The game control unit 80 executes various game programs to display agame screen image on the monitor 26 and to output game music and soundeffect via the speaker 32. The co-existent program list setting unit 78sets a co-existent program list to be referred to by the menu selectionunit 62 when, e.g., displaying a menu. The co-existent program list maybe set when activating the game program 54 a or re-set every update ofthe layout of the game screen image by the game control unit 80.

FIG. 8 is a sequential diagram of an operation to be carried out whenactivating a non-resident system program 52 b while the game program 54a is being executed in the entertainment system 10. As shown in thediagram, with one non-resident system program 52 b selected by the menuselection unit 62 of the resident system program 52 a, the program IDthereof is notified to the game program 54 a (S101). On the game program54 a side, calculation resources to be released are determined based onthe program ID, and then released (S102). Thereafter, an activationpermission which contains the display position data is sent to theresident system program 52 a (S103).

On the resident system program 52 a side, upon receipt of the activationpermission, the operating system 50 is instructed to activate thenon-resident system program 52 b selected by the user (S104). In theabove, the display position data notified by the game program 54 a isprovided as an argument. Thereupon, the operating system 50 activatesthe selected non-resident system program 52 b (S105), and notifies theresident system program 52 a of completion of the activation (S106). Onthe resident system program 52 a side, upon receipt of the notice,completion of the activation of the non-resident system program 52 b isnotified to the game program 54 a (S107).

According to the above described embodiment, the game program 54 a setsa co-existent program list, and a menu to be referred to when activatinga non-existent system program 52 b is changed according to theco-existent program list so that the user can no longer instructactivation of a non-resident system program 52 b not desired to beexecuted in parallel with the game program 54 a. With the above,execution of such a non-resident system program 52 b is restricted, sothat stable operation of the game program 54 a can be ensured.

In addition, when a non-resident system program 52 b is activated whilethe game program 54 a is being executed, sufficient calculationresources can become available for use with the non-resident systemprogram 52 b as the game program 54 a can release a required amount ofcalculation resources. This makes it possible to ensure efficient use ofcalculation resources of the entertainment system 10.

Also, it is possible to restrict activation of a non-resident systemprogram 52 b not desired to be executed in parallel with the gameprogram 54 a being executed. Further, when displaying the result ofexecution of a non-resident system program 52 b while the result ofexecution of the game program 54 a is being displayed, an appropriateposition to display the former can be ensured.

It should be noted that the present invention is not limited to theabove described embodiment. For example, to activate the game program 54a while a non-resident system program 52 b is being executed, e.g., theresident system program 52 a may obtain the co-existent program list inthe data about the game program 54 a (e.g., a file stored in the opticaldisc 36) before the activation, and whether or not any non-residentsystem program 52 b not permitted to be executed in parallel with thegame program 54 a is being executed may be determined with reference tothe co-existent program list. When it is determined that such anon-resident system program 52 b is being executed, the resident systemprogram 52 a suspends the ongoing non-resident system program 52 bbefore activating the game program 54 a. In the above, preferably,identification of the ongoing (that is, not suspended) non-residentsystem program 52 b may be notified to the game program 54 a.

It should be noted that to suspend the ongoing non-resident systemprogram 52 b, the user is encouraged to input information stating theirintention to do so, so that the program is accordingly suspended. In theabove, when the user does not wish to suspend execution of anon-resident system program 52 b not permitted to be executed inparallel with the game program 54 a according to the co-existent programlist, activation of the game program 54 a is called off.

As described above, it is possible to suspend any ongoing non-residentsystem program 52 b not desired to be executed in parallel with the gameprogram 54 a when the game program 54 a is activated. This can ensurestable operation of the game program 54 a.

It should be noted that when it is determined, with reference to theco-existent program list, that parallel execution of the ongoingnon-resident system program 52 b and a game program 54 a related to theco-existent program list is not permitted, activation of the gameprogram 54 a may be restricted (prohibited). In this case, use of theuser interface by the user to activate the game program 54 a, that is,e.g., display of an icon image for use in instructing activation of thegame program 54 a, may be restricted, whereby making an instruction,using the user interface, to activate the game program 54 a isrestricted. Alternatively, when it is determined, after receipt of auser's instruction to activate a game program 54 a, that the activationis not permitted according to the co-existent program list related tothe game program 54 a, a message stating to that effect may be output tocall off the activation.

1.-3. (canceled)
 4. An information processing system including a firstprogram, a plurality of second programs, and a computer for executingthe programs, wherein the first program causes the computer to functionas calculation resource information obtaining means for obtainingcalculation resource information for determining computer calculationresource to be used by one of the plurality of second programs, onebeginning to be executed by the computer, and calculation resourcereleasing means for releasing, based on the calculation resourceinformation obtained, a part of the computer calculation resourcecurrently used by the first program, and the plurality of secondprograms are executed, using the computer calculation resource released.5. The information processing system according to claim 4, wherein thecomputer further executes a third program, and the third program causesthe computer to function as program selecting means for selecting one ofthe plurality of second programs, one beginning to be executed by thecomputer, calculation resource information notifying means for notifyingthe first program of the calculation resource information related to thesecond program selected, and program execution beginning means forbeginning execution of the second program selected, using the computercalculation resource released by the first program.
 6. The informationprocessing system according to claim 4, wherein the calculation resourceinformation is information identifying the second program beginning tobe executed by the computer, and the first program includes informationabout the computer calculation resource to be released by the firstprogram when execution of the second program identified by theinformation is begun, so as to be associated with the informationidentifying the second program.
 7. The information processing systemaccording to claim 5, wherein the calculation resource information isinformation indicating the computer calculation resource to be used bythe second program selected.
 8. A control method for a computer,comprising: a calculation resource information obtaining step ofobtaining by a first program, calculation resource information fordetermining computer calculation resource to be used by one of theplurality of second programs, one beginning to be executed by thecomputer; a calculation resource releasing step of releasing by thefirst program, based on the calculation resource information obtained, apart of the computer calculation resource currently used; and a step ofbeginning execution of the second program, using the computercalculation resource released.
 9. An information storage mediumrecording a program for causing a computer to function as: programselecting means for selecting one of the plurality of second programs,one beginning to be executed by the computer; calculation resourceinformation notifying means for notifying the first program ofcalculation resource information for determining computer calculationresource to be used by the second program selected; and programexecution beginning means for beginning execution of the second programselected, using the computer calculation resource released by the firstprogram, based on the calculation resource information.
 10. Aninformation processing system, comprising: parallel execution conditioninformation obtaining means for obtaining parallel execution conditioninformation indicating condition of one/ones of a plurality of secondprograms, one/ones to be executed in parallel to a first program, thecondition being set according to the first program, and executionrestricting means for restricting execution of a part or all of theplurality of second programs, based on the parallel execution conditioninformation.
 11. The information processing system according to claim10, comprising: a computer for executing the first program and theplurality of programs, wherein the first program causes the computer tofunction as calculation resource releasing means for releasing a part ofthe computer calculation resource to be used by one of the plurality ofsecond programs, one beginning to be executed by the computer, and theplurality of second programs are executed using the computer calculationresource released.
 12. A control method for a computer, comprising: aparallel execution condition information obtaining step of obtainingparallel execution condition information indicating condition ofone/ones of the plurality of second programs, one/ones to be executed inparallel to the first program, the condition being set according to thefirst program and, and an execution restricting step of restrictingexecution of a part or all of the plurality of second programs, based onthe parallel execution condition information.
 13. An information storagemedium recording a program for causing a computer to function asparallel execution condition information obtaining means for obtainingparallel execution condition information indicating condition ofone/ones of the plurality of second programs, one/ones to be executed inparallel to the first program, the condition being set according to thefirst program, and execution restricting means for restricting executionof a part or all of the plurality of second programs, based on theparallel execution condition information.